1. Field of the Invention
This invention relates to data processing methods and apparatus.
2. Description of the Prior Art
Some computer-based data processing systems make use of a xe2x80x9ccorexe2x80x9d computer program and a number of possible program modules or xe2x80x9cplug-insxe2x80x9d which can be loaded when required.
Using terminology from the various Microsoft Windows(copyright) operating systems, the program modules or plug-ins may be provided as xe2x80x9cdynamic load librariesxe2x80x9d or xe2x80x9cDLLsxe2x80x9d. DLLs are generally large files which can contain program code, data and subroutine libraries. They are loaded into memory when needed for the execution of a current program.
One example of a data processing system in which this type of structure can be useful is a computer-based video special effects system. In such a system, the user can generally set up a composite special effect to be applied to a video sequence by selecting a succession of effects modules from a large number of available modules. For example, a sequence of effects set up by a user might comprise:
(i) image loader
(ii) motion tracker
(iii) lighting effect linked to motion tracking
(iv) image realignment linked to motion tracking
Each of these effects can be implemented as a program module or plug-in, with data being routed between the modules under the overall control of a core program. The interface between the core program object and the plug-in objects is a synchronous one, so that program control (in fact, in a multi-tasking environment, a so-called xe2x80x9ctreadxe2x80x9d) is passed to a plug-in which then carries out its processing task. Control is only then returned to the core program to resume other processing using that thread.
This invention provides data processing apparatus in which a core program object interacts with and controls operation of a plurality of plug-in program objects operable to carry out data processing tasks, the apparatus providing for communication between the core program object and each such data processing task:
(i) a synchronous interface to allow interaction between the core program object and a plug-in program object operable to carry out that task; and
(ii) an asynchronous interface to allow interaction between the core program object and a hardware device operable to carry out that task.
The invention recognises and addresses the potential conflict between, on the one hand, providing a data processing system allowing synchronous interface with software plug-ins and, on the other hand, allowing the possibility of a future upgrade to the use of dedicated hardware units to replace some of those plug-ins. Dedicated hardware units of this type, particularly rendering devices, generally use an asynchronous interface. (In fact, some software plug-ins can use an asynchronous interface). Accordingly, the invention involves the counter-intuitive step of providing both an asynchronous and a synchronous plug-in interface in a single system.
The above, and other objects, features and advantages of this invention will be apparent from the following detailed description of illustrative embodiments which is to be read in connection with the accompanying drawings.